1、字符串第一个出现一次的字符
思想：利用hash来统计每个字符出现的次数，按照下标存储，然后遍历hash，如果为1则为出现一次的
class Solution {
public:
    int firstUniqChar(string s) {
        int hash[26]={0};
        
        //将s中的每个字符按照字目放到hash数组中
        for(auto e:s)
        {
            hash[e-'a']++;
        }
        for(int i=0;i<s.size();i++)
        {
            if(hash[s[i]-'a']==1)
                return i;
        }
        return -1;
    }
};
2、2个数组的交集
思想：利用set首先将一个数组中元素去重，然后在第二个数组中查找set中元素，如果有就是交集
class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> v;
        unordered_set<int> s;
        //将num1里面的数据进行去重
        for(auto e:nums1)
        {
            s.insert(e);
        }
        //在num2里面查找s里面每个数据
        for(auto e:s)
        {
            if(find(nums2.begin(),nums2.end(),e)!=nums2.end())
                v.push_back(e);
        }
        return v;
    }
};